// import type { TokenSet } from "@auth/core/types"
// import type { OAuthConfig, OAuthUserConfig } from "@auth/core/providers"

// export interface GiteeEmail {
//   email: string
//   primary: boolean
//   verified: boolean
//   visibility: "public" | "private"
// }

// interface GiteeProfile {
//   id: number;
//   login: string;
//   name?: string;
//   email?: string;
//   avatar_url?: string;
// }

// export default function Gitee<P extends GiteeProfile>(
//   options: OAuthUserConfig<P>
// ): OAuthConfig<P> {
//   const baseUrl = "https://gitee.com";
//   const apiBaseUrl = "https://gitee.com/api/v5";

//   return {
//     id: "gitee",
//     name: "Gitee",
//     type: "oauth",
//     authorization: {
//       url: `${baseUrl}/oauth/authorize`,
//       params: { scope: "user_info emails" },
//     },
//     token: `${baseUrl}/oauth/token`,
//     userinfo: {
//       url: `${apiBaseUrl}/user`,
//       async request({ tokens, provider }: { tokens: TokenSet, provider: OAuthConfig<P> }) {
//         const res = await fetch(provider.userinfo?.url as string, {
//           headers: {
//             Authorization: `Bearer ${tokens.access_token}`,
//             "User-Agent": "authjs",
//           },
//         });
//         const profile: P = await res.json();

//         if (!profile.email) {
//           const emailRes = await fetch(`${apiBaseUrl}/user/emails`, {
//             headers: {
//               Authorization: `Bearer ${tokens.access_token}`,
//               "User-Agent": "authjs",
//             },
//           });
//           const emails: GiteeEmail[] = await emailRes.json();
//           profile.email = (emails.find((e: GiteeEmail) => e.primary) ?? emails[0])?.email;
//         }

//         return profile;
//       },
//     },
//     profile(profile) {
//       return {
//         id: profile.id.toString(),
//         name: profile.name ?? profile.login,
//         email: profile.email!,
//         image: profile.avatar_url,
//       };
//     },
//     options,
//   };
// }